Why Julia?

Or: DIRHTLYAPL

"Do I Really Have To Learn Yet Another Programming Language??"

David P. Sanders

Department of Physics, Faculty of Sciences

National University of Mexico (UNAM)

Twitter: @DavidPSanders

GitHub: dpsanders

Advantages of Julia

Julia:

  • is interpreted, but (JIT-) compiled
  • is high-level and easy to learn
  • designed so easy to make fast from the start
  • is fast (~2--3x C speed)

Julia:

  • has a sophisticated type system
  • but it is not necessary to talk about types

  • has multiple dispatch: functions specialised on the types of their arguments

  • has sophisticated metaprogramming (macros) for generating code programatically
  • allow the creation of domain-specific languages

Julia:

  • most of the standard library is implemented in Julia itself

  • avoids the infamous "two-language problem"

  • "users are developers"

Using Julia

  • From the REPL (Read--Eval--Print Loop):

      julia
  • Inside IJulia (IPython interface with Julia kernel):

      ipython notebook --profile julia
  • Inside an IDE, e.g. LightTable + Jewel + Juno/Jupiter; Julia Studio

Getting help with Julia


In [ ]:
;ipython nbconvert Why\ Julia.ipynb --to slides --post serve